package com.example.aidocengine.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.aidocengine.pojo.entity.StartupPlanDocument;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

@Mapper
public interface StartupPlanDocumentMapper extends BaseMapper<StartupPlanDocument> {
    
    /**
     * 根据处理状态查询文档列表
     */
    List<StartupPlanDocument> selectByValidationStatus(@Param("validationStatus") String validationStatus);
    
    /**
     * 查询指定时间范围内的文档
     */
    List<StartupPlanDocument> selectByTimeRange(@Param("startTime") LocalDateTime startTime, 
                                               @Param("endTime") LocalDateTime endTime,
                                               @Param("limit") Integer limit);
    
    /**
     * 查询处理中的文档
     */
    List<StartupPlanDocument> selectProcessingDocuments();
    
    /**
     * 查询已完成的文档统计
     */
    int selectCompletedCount(@Param("startTime") LocalDateTime startTime, 
                           @Param("endTime") LocalDateTime endTime);
    
    /**
     * 查询失败的文档统计
     */
    int selectFailedCount(@Param("startTime") LocalDateTime startTime, 
                        @Param("endTime") LocalDateTime endTime);
    
    /**
     * 更新文档处理状态
     */
    int updateValidationStatus(@Param("documentId") Long documentId, 
                          @Param("validationStatus") String validationStatus,
                          @Param("totalSteps") Integer totalSteps,
                          @Param("validatedSteps") Integer validatedSteps,
                          @Param("passedSteps") Integer passedSteps,
                          @Param("failedSteps") Integer failedSteps);
    
    /**
     * 批量删除指定天数前的文档
     */
    int deleteOldDocuments(@Param("days") int days);
}